1. Field of the Invention
This invention relates to reading and writing blocks of a data volume. More particularly, the invention relates to a system and method for providing continuous data protection (CDP) for a data volume by backing up blocks of the data volume in real time to a local CDP log and transmitting the blocks over the Internet for storage in a remote CDP log on a server computer system in response to write requests that change the blocks of the data volume.
2. Description of the Related Art
Computer systems often employ backup solutions to backup data in order to protect it against hardware failure or data corruption. Some backup solutions work by periodically performing backups at scheduled time intervals. For example, the data may be backed up daily or weekly. If the backup data is needed then the user can select one of the backup images that were created, and the data it contains can be restored to the computer system.
One problem with performing periodic backups in this manner is that any data that was changed since the time the most recent backup was performed will be lost in the event of a disk failure or other disaster. Also, in some cases the user may need the ability to restore the data to a particular point in time with more specificity than allowed by the time intervals at which the backups are performed. For example, the backup software may perform daily backups, but the user may need to restore the data to the state as it existed at a particular time within a certain day.
These problems have been addressed by backup and restore software which provides continuous data protection (CDP). In a CDP solution there are no backup schedules. Instead, the data is continuously backed up in real time as the data is changed. For example, continuous data protection may be provided for a data volume at the block level. Each time a block in the volume is changed, a copy of the block may be copied into a CDP log, along with a timestamp indicating the current time. Thus, for any given block in the volume, there may be multiple copies of the block in the CDP log, where each copy corresponds to one of the times when the block was changed. Since the data is continuously backed up, the CDP log can be used to restore the volume to its state as it existed at virtually any specified point in time by using the timestamp information in the CDP log to find the appropriate copy of each respective block of the volume, e.g., the copy which represents the state of the respective block at the specified point in time.